In many integrated circuit designs, it is desirable to have as much available memory as possible. Currently, a programmable IC such as a field programmable field array (FPGA), for example, may have about 50 megabits of memory. However, as technology advances this amount of memory may not be sufficient, creating a gap between the amount of memory that an IC can provide and the amount of memory that may be required by certain applications. For example, a network may have a line rate of up to 400 gigabits per second. Thus, a single millisecond of network traffic contains 400 megabits of data.
In some cases, the amount of memory may be increased by increasing the number of memory cells on the IC. However, more memory cells occupy more area, and area is limited in many IC designs. Therefore, it is desirable to provide other techniques of maximizing available memory in an IC.